1. Field of the Invention
The invention generally relates to automated testing systems and more specifically relates to circuit structures and systems for improved automated testing of electrical interfaces in systems under test.
2. Discussion of Related Art
In electronic systems it is common for components within a system to be interconnected via electronic signal buses. Signals are exchanged among the various components of a system through such electronic buses. For example, in a computer storage subsystem, a storage controller within the storage subsystem may be coupled to host computers via an I/O interface bus and may be coupled to other components within the storage subsystem via internal electronic signal buses. Further, components within such a storage subsystem may be coupled to power supply signal paths to receive electrical power during normal operation.
When testing such systems in a manufacturing environment it is important to test the various interface bus connections and power supply connections to verify proper operation of the subsystem in response to various common operating environments and common failure modes. For example, if the operation of a subsystem is specified to behave in a certain respect in response to changes in power status or loss of power, it is important to simulate such a loss of power and verify the proper operation of a system. For example, it may be important to verify proper operation of the subsystem in response to sensing connection and disconnection of various components within the subsystem. Still more specifically, with regard to a storage subsystem, it may be important to verify operation of the system in response to power failure, removal or insertion of disk drive storage units, host interface bus failures, and other common failure modes of a storage subsystem.
It is also generally known in the art to automate the process of testing manufactured devices by applying external stimuli to the subsystem and verifying proper response of the subsystem in response to the various stimuli. Such automated test systems generally use a computer system programmed with an automated test sequence application. The automated test application follows a sequence of commands to perform certain desired tests on the system under test. The commands may be provided to the test application as, for example, scripts of commands to be interpreted by the test application. The commands instruct the test application to generate sequences of test data for testing normal operation of the system under test. The test application then cooperates with other elements in the host system to communicate the desired test data to the system under test and verifies proper operation of the system under test in response to the generated test data.
In addition to testing proper operation of the subsystem in response to programmable sequences of test data, failure modes as noted above often involve changes to the xe2x80x9creal-worldxe2x80x9d environment in which the system under test is functioning. Simulating such failure modes typically requires manual intervention in the testing process. For example, to verify proper operation of a system under test in response to loss of power, manual intervention is typically required to remove power supplied to the system under test. The test application then verifies proper operation of the system under test in response to the manually generated stimulus. Or, for example, in the case of automated testing of a storage subsystem, manual intervention may be required to remove or insert a disk drive to verify operation of the subsystem in response thereto.
It is generally a problem to require manual intervention in a testing process. Manual intervention introduces a probability of human error in the automated testing process and also slows the automated testing process when manual intervention is required. It is therefore evident from the above discussion that a need exists for improved automated testing procedures and systems to reduce or eliminate reliance on manual intervention for testing operation of a system in response to xe2x80x9creal-worldxe2x80x9d stimuli.
The present intervention solves the above and other problems, thereby advancing the state of the useful arts, by providing enhanced systems and methods to automate simulation of xe2x80x9creal-worldxe2x80x9d environmental conditions and to verify response of the system under test in response to such real-world stimuli. In general, the present invention provides electrical components (also referred to herein as switching devices) designed to intervene in the normal exchange of signals and power over interface buses and power signal buses within a system under test. These switching devices are coupled through a standard communications interface to the automated testing subsystem operable to perform automated testing on the system under test. The automated testing system is then adapted to command the electrical components to simulate real-world conditions without the need for human intervention. The automated test system may thereby generate real-world stimuli automatically and verify proper operation of the system under test in response thereto.
These enhanced systems and processes of the present invention serve to centralize control of real-world interfaces to be driven by a single test application. Through the communications interface with the enhanced components, a common software interface may be used by the automated test application to control all real-world interfaces in the automated test sequence. This test architecture therefore allows an automated test application to control all phases of a test sequence including setup of the test environment, verification of the system operation and recovery or cleanup of environmental conditions following the test sequencexe2x80x94all without requiring manual intervention. Eliminating the need for manual intervention also enables continuous (i.e., 24xc3x977) test operation to thereby improve productivity of a test function. Furthermore, this enhanced automated test architecture is easily expandable to utilize new, previously unknown real-world interfaces by providing other variants of switching device to intercept and inject signals associated with the interfaces.
A feature of the invention therefore provides an apparatus for enhanced automated testing of a system under test, the apparatus comprising: an automated test system for applying stimuli to the system under test and for verifying proper operation of the system under test in response to the stimuli; a switching device for controllably applying stimuli to the system under test; and a communication medium coupling the automated test system to the switching device to enable control of the switching device by the automated test system.
Another aspect of the invention further provides that the switching device comprises: a logic level switching device to switch logic signals within the system under test as the stimuli thereto.
Another aspect of the invention further provides that the switching device comprises: a power relay switching device to switch power signals within the system under test as the stimuli thereto.
Another aspect of the invention further provides that the communication medium is a serial interface.
Another aspect of the invention further provides that the communication medium is a network communication medium.
Another aspect of the invention further provides that the system under test is a storage subsystem including a storage controller, a storage device and an interface bus and such that the switching device comprises: a logic level drive device coupled to the interface bus between the storage controller and the storage device to simulate signals exchanged there between via the interface bus.
Another aspect of the invention further provides that the logic level drive device further comprises: a storage device present signal path to simulate removal and insertion of the storage unit.
Another aspect of the invention further provides that the system under test is a storage subsystem including a storage controller, a power supply device and a power bus and such that the switching device comprises: a power relay drive device coupled to the interface bus between the storage controller and the storage device to simulate power signals exchanged there between via the power bus.
Another aspect of the invention further provides that the power relay drive device further comprises: a power signal path to simulate removal and application of power signals from the power supply device to the storage controller.
Another aspect of the invention further provides that the power supply device is a battery power supply device.
Another feature of the invention provides a method for testing a system under test comprising the steps of: detecting a need for a real-world stimulus to be applied to the system under test; and providing the real-world stimulus without manual intervention.
Another aspect of the invention further provides that the step of detecting includes the step of: interpreting a test command requesting generation and application of the real-world stimulus.
Another aspect of the invention further provides that the step of providing includes the steps of: generating the real-world stimulus without manual intervention; and applying the real-world stimulus to the system under test without manual intervention.
Another aspect of the invention further provides that the step of providing includes the step of: controlling a driver element to controllably generate the real-world stimulus and to controllably apply the generated real-world stimulus to the system under test.
Another aspect of the invention further provides that the step of controlling includes the steps of: determining a signal type associated with the real-world stimulus such that the driver element corresponds to the signal type.
Another aspect of the invention further provides that the signal type is a logic signal and such that the driver element is a logic level driver element.
Another aspect of the invention further provides that the signal type is a power signal and such that the driver element is a power relay driver element.
Another feature of the invention provides an apparatus for enabling automated testing of a system under test by a test system, the apparatus comprising: a signal driver element including: means for coupling the driver element to a signal path of the system under test; communication means for communicating between the signal driver element and the test system; and signal means for controllably intercepting and injecting signals on the signal path in response to requests received from the test system via the communication means.
Another aspect of the invention further provides that the signal path is a logic signal path and such that the signal means controllably intercepts and injects logic signals on the signal path.
Another aspect of the invention further provides that the signal path is a power signal path and such that the signal means controllably intercepts and injects power signals on the signal path.